console.log("6LeftNumFunnel");
let utils = data["utils"];
let RBushItem = data["RBushItem"];
let RBU = data["RBU"];
let RBush = data["RBush"];
let AreaForRender = data["AreaForRender"];

function LeftNumFunnel(funnels) {
  this.funnels = [];
  this.numMap = {};
  funnels && this.addFunnels(funnels);
}
utils.extend(LeftNumFunnel.prototype, {
  addFunnels: function (funnels) {
    utils.merge(this.funnels, funnels);
  },
  clearFunnels: function () {
    this.funnels.length = 0;
    this.resetLeftNums();
  },
  resetLeftNums: function () {
    this.numMap = {};
  },
  setLeftNum: function (funnel, num) {
    if (this.funnels.indexOf(funnel) < 0) throw new Error(funnel + " not found!");
    this.numMap[funnel] = num;
  },
  getResult: function () {
    for (var result = [], funnels = this.funnels, i = 0, len = funnels.length; i < len; i++) result.push({
      name: funnels[i],
      leftNum: this.numMap[funnels[i]] || 0
    });
    return result;
  }
});

return {
  "utils": utils,
  "RBushItem": RBushItem,
  "RBU": RBU,
  "RBush": RBush,
  "AreaForRender": AreaForRender,
  "LeftNumFunnel": LeftNumFunnel
}